home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / EDUCMISC / EDPAK_5.LZH / TT.BAS < prev    next >
BASIC Source File  |  1980-01-01  |  15KB  |  561 lines

  1. 4 DEFINT A-R,Y-Z
  2. 35 DIM K$(80)
  3. 40 DIM L$(266)
  4. 45 DIM CK(1000)
  5. 50 DIM W$(1000)
  6. 70 CH = 29
  7. 75 PRINT FRE(0)
  8. 78 KEY OFF
  9. 80 GOSUB 52000
  10. 100 GOSUB 50000
  11. 150 TF = 50
  12. 200 GOTO 40000
  13. 500 REM ******* CLS
  14. 510 CLS 
  15. 520 RETURN
  16. 8000 REM ***** FILE NAME ACCEPLABLE TEST ************
  17. 8010 TEST = 1
  18. 8100 FOR Q = 1 TO LEN(A$)
  19. 8110 K$(Q) = MID$(A$,Q,1)
  20. 8120 C = ASC(K$(Q))
  21. 8130 IF C < 48 OR C > 122 THEN TEST = 4
  22. 8140 IF Q = 1 AND ( C < 65 OR C > 122 ) THEN TEST = 4
  23. 8150 NEXT Q
  24. 8190 RETURN
  25. 13100 REM locate
  26. 13110 LOCATE LI,TB
  27. 13120 RETURN
  28. 20000 REM letter practice
  29. 20010 GOSUB 28000
  30. 20020 FOR T = 1 TO 256
  31. 20030 CK(T) = 0
  32. 20040 NEXT T
  33. 20100 N = 1
  34. 20110 GOSUB 500
  35. 20120 TC = 1
  36. 20125 N = INT( RND * (MX + 1 ))
  37. 20130 IF L$(N) = "" OR L$(N) = " " THEN 20300
  38. 20140 IF CK(N) > 2 THEN 20300
  39. 20200 PRINT L$(N)
  40. 20210 C$ = INKEY$
  41. 20220 TC = TC + 1
  42. 20225 IF TC = INT(TF * 1.5)THEN PRINT "time"
  43. 20230 IF C$ = "" THEN 20210
  44. 20235 C = ASC(C$)
  45. 20237 IF C = 27 THEN 40000
  46. 20240 IF  TC < (TF * 1.5) AND C$ = L$(N) THEN GOTO 20600
  47. 20245 IF C$ <> L$(N) THEN BEEP
  48. 20250 IF C$ <> L$(N) THEN 20210
  49. 20300 N = N + 1
  50. 20310 IF N  = 256 THEN 20100
  51. 20400 GOTO 20110
  52. 20600 REM increase count
  53. 20605 G = 0
  54. 20610 CK(N) = CK(N) + 1
  55. 20620 G = G + 1
  56. 20625 IF G = MX + 1 THEN 20700
  57. 20630 IF CK(G) < 2 THEN 20245
  58. 20640 GOTO 20620
  59. 20700 REM all done
  60. 20705 PRINT ""
  61. 20710 PRINT " End of Exercise "
  62. 20720 PRINT " Do you want to do the exercise again ?"
  63. 20730 PRINT "  1  -  repeat same exercise "
  64. 20740 PRINT "  2  -  back to main menu "
  65. 20745 PRINT " Enter the number then press return "
  66. 20750 GOSUB 60000
  67. 20760 IF DT# < 1 OR DT# > 2 THEN 20750
  68. 20770 IF DT# = 1 THEN 20020 ELSE 40000
  69. 23000 REM READ FILES
  70. 23050 PRINT "READING DATA FROM DISK.  PLEASE WAIT. "
  71. 23100 OPEN "I",#1,"LETTERS"
  72. 23110 N = 1
  73. 23120 IF EOF(1) THEN 23900
  74. 23130 LINE INPUT #1,L$(N)
  75. 23135 REM PRINT L$(N),N
  76. 23140 N = N + 1
  77. 23150 GOTO 23120
  78. 23900 CLOSE 1
  79. 24100 OPEN "I",#1,"WORDTYPE"
  80. 24110 N = 1
  81. 24120 IF EOF(1) THEN 24900
  82. 24130 INPUT #1,W$(N)
  83. 24135 REM PRINT W$(N)
  84. 24137 IF ASC(W$(N)) > 127 THEN W$(N) = MID$(W$(N),2)
  85. 24140 N = N + 1
  86. 24150 GOTO 24120
  87. 24900 CLOSE
  88. 24910 RETURN
  89. 28000 REM level
  90. 28100 GOSUB 500
  91. 28110 PRINT " WHAT LEVEL DO YOU WANT TO PRACTICE AT "
  92. 28120 PRINT ""
  93. 28130 PRINT " 1 -  BEGINNER, KEYS A,S,D,F,G,H,J,K,L,;"
  94. 28140 PRINT " 2 -  ABOVE KEYS PLUS q,w,e,r,t,y,u,i,o,p "
  95. 28150 PRINT " 3 -  Above keys plus z,x,c,v,b,n,m,,,.,"
  96. 28160 PRINT " 4 -  Above keys plus numbers "
  97. 28170 PRINT " 5 -  Above keys plus Capital letters "
  98. 28180 PRINT " 6 -  Above keys plus special characters "
  99. 28300 GOSUB 60000
  100. 28310 IF DT# < 1 OR DT# > 6 THEN 28300
  101. 28320 IF DT# = 1 THEN MX = 10
  102. 28330 IF DT# = 2 THEN MX = 20
  103. 28340 IF DT# = 3 THEN MX = 29
  104. 28350 IF DT# = 4 THEN MX = 39
  105. 28369 IF DT# = 5 THEN MX = 65
  106. 28380 IF DT# = 6 THEN MX = 256
  107. 28500 RETURN
  108. 29000 REM level of word practice
  109. 29010 GOSUB 500
  110. 29100 PRINT " How many words do you want to practice "
  111. 29110 PRINT " 1 - the first 50 words "
  112. 29120 PRINT " 2 - the first 100 words "
  113. 29130 PRINT " 3 - the first 200 words "
  114. 29140 PRINT " 4 - the first 300 words "
  115. 29150 PRINT " 5 - the first 400 words "
  116. 29160 PRINT " 6 - the first 500 words "
  117. 29170 PRINT " 7 - all the words "
  118. 29300 PRINT " Enter the number then press return "
  119. 29400 GOSUB 60000
  120. 29410 IF DT# < 1 OR DT# > 7 THEN 29400
  121. 29420 IF DT# = 1 THEN MX = 50
  122. 29430 IF DT# = 2 THEN MX = 100
  123. 29440 IF DT# = 3 THEN MX = 200
  124. 29450 IF DT# = 4 THEN MX = 300
  125. 29460 IF DT# = 5 THEN MX = 400
  126. 29470 IF DT# = 6 THEN MX = 500
  127. 29480 IF DT# = 7 THEN MX = 600
  128. 29500 RETURN
  129. 30000 REM print words
  130. 30007 EFLG  = 0
  131. 30020 FOR T = 1 TO 600
  132. 30030 CK(T) = 0
  133. 30040 NEXT T
  134. 30050 GOSUB 29000
  135. 30100 N = 1
  136. 30110 GOSUB 500
  137. 30120 TC = 1
  138. 30125 EFLG = 0
  139. 30130 IF W$(N) = "" OR W$(N) = " " THEN 30310
  140. 30140 IF CK(N) > 2 THEN 30300
  141. 30150 H = 1
  142. 30160 T$ = W$(N)
  143. 30170 L = LEN(T$)
  144. 30200 PRINT W$(N)
  145. 30210 C$ = INKEY$
  146. 30215 IF H = L + 1 THEN 30300
  147. 30220 TC = TC + 1
  148. 30225 IF TC = INT(TF * L * .5) THEN PRINT "*";
  149. 30230 IF C$ = "" OR C$ = " " THEN  30210
  150. 30235 C = ASC(C$)
  151. 30237 IF C = 27 THEN 40000
  152. 30240 IF  C$ = MID$(T$,H,1) THEN 30500  ELSE 31000
  153. 30300 REM
  154. 30305 IF EFLG = 0 AND TC < ( INT(TF * L * .5)) THEN  CK(N) = CK(N) + 1
  155. 30310 N = N + 1
  156. 30320 IF N > MX THEN N = 1
  157. 30400 IF N > 1 GOTO 30110
  158. 30410 R = 1
  159. 30420 IF R = MX + 1 THEN 30450
  160. 30430 IF CK(R) < 3 THEN 30110
  161. 30435 R = R + 1
  162. 30440 GOTO 30420
  163. 30450 REM end of words
  164. 30460 PRINT " End of Word Practice "
  165. 30465 PRINT " You have typed every word correct 3 times "
  166. 30470 PRINT " press any key to continue "
  167. 30480 IF INKEY$ = "" THEN 30480
  168. 30490 GOTO 40000
  169. 30500 REM right key
  170. 30510 H = H + 1
  171. 30515 PRINT C$;
  172. 30520 GOTO 30210
  173. 31000 REM wrong key
  174. 31100 BEEP
  175. 31110 EFLG = 1
  176. 31200 GOTO 30210
  177. 35000 REM letter game
  178. 35010 SC = 0
  179. 35020 TI = TF
  180. 35050 GOSUB 28000
  181. 35100 GOSUB 500
  182. 35102 SC = 0
  183. 35103 TI = TF
  184. 35105 P$ = ""
  185. 35110 N = 1
  186. 35120 N = INT( RND *(MX+1))
  187. 35122 IF L$(N) = "" OR L$(N) = " " THEN 35120
  188. 35123 P$ = L$(N) + P$
  189. 35125 KT = 0
  190. 35127 LI = 1
  191. 35128 TB = 1
  192. 35130 GOSUB 13100
  193. 35135 IF LEN(P$) = 12 THEN GOTO 39000
  194. 35140 PRINT P$;TAB(12) "[";TAB(50) SC
  195. 35200 C$ = INKEY$
  196. 35210 KT = KT + 1
  197. 35220 IF KT > TI THEN N = N + 1
  198. 35230 IF KT > TI THEN 35120
  199. 35240 IF C$ = "" THEN 35200
  200. 35250 C = ASC(C$)
  201. 35260 IF C = 27 THEN 40000
  202. 35300 IF INSTR(P$,C$) = 0 THEN 35900
  203. 35310 L = LEN(P$)
  204. 35320 FOR T = 1 TO L
  205. 35330 IF C$ = MID$(P$,T,1) THEN HD = T
  206. 35340 NEXT T
  207. 35350 LFT = HD - 1
  208. 35360 RGT = L - HD
  209. 35370 R$ = RIGHT$(P$,RGT)
  210. 35380 L$ = LEFT$(P$,LFT)
  211. 35390 P$ = L$ + R$
  212. 35395 SC = SC + 250
  213. 35397 TI = TI - .2
  214. 35400 GOTO 35200
  215. 35900 REM miss
  216. 35910 BEEP
  217. 35920 MI = MI + 1
  218. 35925 SC = SC - 1000
  219. 35930 GOTO 35130
  220. 39000 PRINT ""
  221. 39100 BEEP
  222. 39200 PRINT " END OF GAME "
  223. 39210 PRINT " do you want to play the same game again "
  224. 39230 PRINT "  1 - yes  "
  225. 39240 PRINT "  2 - no   "
  226. 39250 GOSUB 60000
  227. 39260 IF DT# < 1 OR DT# > 2 THEN 39250
  228. 39270 IF DT# = 1 THEN 35100
  229. 40000 REM *******  FILE DESCRIPTION MENU  *********
  230. 40060 GOSUB 500
  231. 40080 PRINT "****************  INITIAL MENU  ******************"
  232. 40100 PRINT ""
  233. 40120 PRINT "    0 - EXIT "
  234. 40125 PRINT ""
  235. 40140 PRINT "    1 - INDIVIDUAL LETTER PRACTICE "
  236. 40145 PRINT ""
  237. 40160 PRINT "    2 - WORD PRACTICE "
  238. 40165 PRINT ""
  239. 40180 PRINT "    3 - LETTER GAME "
  240. 40185 PRINT ""
  241. 40200 PRINT "    4 - CHANGE TIMING "
  242. 40210 PRINT ""
  243. 40260 PRINT "*****  ENTER THE NUMBER THEN PRESS RETURN  ******"
  244. 40280 GOSUB 60000
  245. 40282 IF DT# <0 OR DT# >4 THEN 40280
  246. 40300 T = DT#
  247. 40310 IF T = 0 THEN 51000
  248. 40320 ON T GOTO 20000,30000,35000,45000
  249. 40340 GOSUB 500
  250. 45000 REM TIMING
  251. 45100 GOSUB 500
  252. 45110 PRINT "   This option is used to change the amount of time you have to"
  253. 45120 PRINT "type in each letter.   Different computers run at different speeds"
  254. 45125 PRINT "You may want to practice at a faster speed. "
  255. 45130 PRINT "current time factor is ";TF
  256. 45140 PRINT "Enter a lower number to have less time to type in each number"
  257. 45150 PRINT "Enter a higher number to have more time to type in each number"
  258. 45300 GOSUB 60060
  259. 45310 IF DT# < 1 OR DT# > 1000 THEN 45300
  260. 45320 TF = DT#
  261. 45500 GOTO 40000
  262. 50000 REM **********  INTRO
  263. 50010 GOSUB 500
  264. 50100 PRINT "     T Y P I N G    T E A C H E R    P R O G R A M    1.0   "
  265. 50105 PRINT ""
  266. 50110 PRINT "         Copyright 1985 by Potomac Pacific Engineering Inc."
  267. 50120 PRINT ""
  268. 50130 PRINT "This program is licensed FREE to all users with some restrictions"
  269. 50165 PRINT "        See the manual for more information on the license."
  270. 50167 PRINT ""
  271. 50920 GOSUB 23000
  272. 50950 PRINT "******************  PRESS ANY KEY TO CONTINUE  *****************";
  273. 50960 IF INKEY$ = "" GOTO 50960
  274. 50970 RETURN
  275. 51000 REM ***** EXIT TO SYSTEM
  276. 51100 GOSUB 500
  277. 51110 CLOSE
  278. 51120 PRINT " -BYE, Have a nice day"
  279. 51130 END
  280. 52000 REM ***** INTRO 1
  281. 52010 GOSUB 500
  282. 52100 PRINT "     Put the TYPING TEACHER DISK in the default disk drive  "
  283. 52110 PRINT ""
  284. 52120 PRINT "          *****  THEN PRESS ANY KEY TO CONTINUE  *****"
  285. 52130 PRINT ""
  286. 52140 PRINT " The program needs to read files off of the typing teacher disk"
  287. 52200 IF INKEY$ = "" GOTO 52200
  288. 52210 RETURN
  289. 53000 REM **********  READ IDEX SUBROUTINE
  290. 53010 OPEN "I",#1,"REALTIME"
  291. 53020 FOR T = 1 TO MAXF
  292. 53030 INPUT #1,REALFLG(T)
  293. 53040 NEXT T
  294. 53050 CLOSE #1
  295. 53060 REALFLG(A) = 0
  296. 53070 REM **********  WRITE IDEX SUBROUTINE
  297. 53080 OPEN "O",#1,"REALTIME"
  298. 53090 FOR T = 1 TO 30
  299. 53100 WRITE #1,REALFLG(T)
  300. 53110 NEXT T
  301. 53120 CLOSE #1
  302. 53130 RETURN
  303. 60000 REM *******  INTEGER LESS THEN 100 CHECK  ********
  304. 60010 MAX = 2
  305. 60020 ACT$ = "1234567890=<>^"
  306. 60030 IF NE = 0 THEN ACT$ = "1234567890"
  307. 60040 PRINT ">__<";
  308. 60050 GOTO 60240
  309. 60060 REM *******  INTEGER *******                        
  310. 60070 MAX = 8
  311. 60080 ACT$ = "1234567890-+,=<>^"
  312. 60090 IF NE = 0 THEN ACT$ = "1234567890-+,"
  313. 60100 PRINT ">________<";
  314. 60110 GOTO 60240
  315. 60120 REM *******  SINGLE PRECISION  *******                        
  316. 60130 MAX = 10
  317. 60140 ACT$ = "1234567890-+,.%$=<>^"
  318. 60150 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  319. 60160 PRINT ">__________<";
  320. 60170 GOTO 60240
  321. 60180 REM *******  DOUBLE PRECISION  *******                        
  322. 60190 MAX = 20
  323. 60200 ACT$ = "1234567890-+,.%$=<>^"
  324. 60210 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  325. 60220 PRINT ">____________________<";
  326. 60230 GOTO 60240
  327. 60240 REM ********** NUMBER CHECK **********
  328. 60250 A$ = ""
  329. 60260 K$(20) = " "
  330. 60270 KTMAX = 0
  331. 60280 FOR T9 = 1 TO MAX
  332. 60290 K$(T9) = " "
  333. 60300 NEXT T9
  334. 60310 DIG$ = "1234567890."
  335. 60320 DOTFLG = 0
  336. 60330 T2 = MAX + 1
  337. 60340 FOR T6 = 1 TO T2
  338. 60350 PRINT CHR$(CH);
  339. 60360 NEXT T6
  340. 60370 IF INKEY$ = "" GOTO 60380 ELSE GOTO 60370
  341. 60380 KT = 0
  342. 60390 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  343. 60400 KT = KT + 1
  344. 60410 REM     
  345. 60420 W$ = INKEY$
  346. 60430 IF W$ = "" GOTO 60420
  347. 60440 C = ASC(W$)
  348. 60450 IF C = 0 THEN GOSUB 61900
  349. 60460 IF C = 13 GOTO 60580
  350. 60470 IF C = 17 OR C = 8 GOTO 61150
  351. 60480 IF C = 19 GOTO 60670
  352. 60490 IF C = 4 GOTO 60720
  353. 60500 IF C = 6 GOTO 60780
  354. 60510 IF C = 1 GOTO 60960
  355. 60520 IF KT > MAX GOTO 60410
  356. 60530 IF INSTR(ACT$,W$) = 0 GOTO 61230
  357. 60540 K$(KT) = W$
  358. 60550 PRINT K$(KT);
  359. 60560 IF KT > KTMAX THEN KTMAX = KT
  360. 60570 GOTO 60400
  361. 60580 REM **********  RETURN  **********
  362. 60590 FOR T9 = 1 TO KTMAX
  363. 60600 A$ = A$ + K$(T9)
  364. 60610 NEXT T9
  365. 60620 IF KTMAX = 0 THEN PRINT "1"
  366. 60630 IF KTMAX = 0 THEN DT# = 1
  367. 60640 IF KTMAX = 0 THEN RETURN
  368. 60650 PRINT ""
  369. 60660 GOTO 61260
  370. 60670 REM ********* MOVE CURSE BACK ********
  371. 60680 IF KT = 1 GOTO 60410
  372. 60690 KT = KT - 1
  373. 60700 PRINT CHR$(CH);
  374. 60710 GOTO 60410
  375. 60720 REM ********* MOVE CURSER FORWARD *********
  376. 60730 IF KT >= MAX GOTO 60410
  377. 60740 IF KT > (KTMAX + 1) GOTO 60410
  378. 60750 PRINT K$(KT);
  379. 60760 KT = KT + 1
  380. 60770 GOTO 60410
  381. 60780 REM ********** INSERT ***********
  382. 60790 IF KT > KTMAX GOTO 60410
  383. 60800 X9 = MAX
  384. 60810 WHILE X9 > KT
  385. 60820 X9 = X9 - 1
  386. 60830 K$(X9 + 1) = K$(X9)
  387. 60840 WEND 
  388. 60850 K$(KT) = " "
  389. 60860 KTMAX = KTMAX + 1
  390. 60870 IF KTMAX > MAX THEN KTMAX = MAX
  391. 60880 FOR T9 = KT TO KTMAX
  392. 60890 PRINT K$(T9);
  393. 60900 NEXT T9
  394. 60910 T6 = (KTMAX - KT) + 1
  395. 60920 FOR T7 = 1 TO T6
  396. 60930 PRINT CHR$(CH);
  397. 60940 NEXT T7
  398. 60950 GOTO 60410
  399. 60960 REM ********** DELETE ***********
  400. 60970 IF KT > KTMAX GOTO 60410
  401. 60980 IF KTMAX = 1 GOTO 60410
  402. 60990 K$(MAX + 1) = ""
  403. 61000 X9 = KT 
  404. 61010 WHILE X9 <= MAX
  405. 61020 K$(X9) = K$(X9 + 1)
  406. 61030 X9 = X9 + 1
  407. 61040 WEND 
  408. 61050 KTMAX = KTMAX - 1
  409. 61060 FOR T9 = KT TO KTMAX
  410. 61070 PRINT K$(T9);
  411. 61080 NEXT T9
  412. 61090 PRINT "_";
  413. 61100 T7 = (KTMAX - KT) + 2
  414. 61110 FOR T8 = 1 TO T7
  415. 61120 PRINT CHR$(CH);
  416. 61130 NEXT T8
  417. 61140 GOTO 60410
  418. 61150 REM ********* BACKSPACE ********
  419. 61160 IF KT = 1 GOTO 60410
  420. 61170 KT = KT - 1
  421. 61180 PRINT CHR$(CH);
  422. 61190 K$(KT) = " " 
  423. 61200 PRINT "_";
  424. 61210 PRINT CHR$(CH);
  425. 61220 GOTO 60410
  426. 61230 REM *******  INPUT NOT ACCEPTABLE  ********
  427. 61240 PRINT CHR$(7);
  428. 61250 GOTO 60420
  429. 61260 REM ********* CLEAR STRINGS ********
  430. 61270 MAX = LEN(A$)
  431. 61280 D2$ = ""
  432. 61290 D1$ = ""
  433. 61300 DFLG = 0
  434. 61310 FOR Q93 = 1 TO MAX
  435. 61320 R$ = MID$(A$,Q93,1)
  436. 61330 IF INSTR(DIG$,R$) = 0 GOTO 61400
  437. 61340 IF R$ = "." OR DFLG = 1 GOTO 61380
  438. 61350 IF DFLG = 1 GOTO 61380
  439. 61360 D2$ = D2$ + R$
  440. 61370 GOTO 61400
  441. 61380 D1$ = D1$ + R$
  442. 61390 DFLG = 1
  443. 61400 NEXT Q93
  444. 61410 DA# = VAL(D2$)
  445. 61420 D1# = VAL(D1$)
  446. 61430 DT# = DA# + D1#
  447. 61440 IF K$(1) = "-" THEN DT# =  -DT#   
  448. 61450 RETURN
  449. 61900 REM ****** CHECK FOR ASC0
  450. 61910 S4$ = INKEY$
  451. 61915 IF S4$ = "" THEN RETURN
  452. 61920 C2 =  ASC(S4$)
  453. 61930 IF C2 = 83 THEN C = 1
  454. 61940 IF C2 = 82 THEN C = 6
  455. 61950 IF C2 = 75 THEN C = 19
  456. 61960 IF C2 = 77 THEN C = 4 
  457. 61970 RETURN
  458. 62000 REM **********  ALPHANUMERIC CHECK  **************
  459. 62010 MAX = FL(A,Q)
  460. 62020 GOTO 62040
  461. 62030 REM ********  MAX SET IN PROGRAM  ********
  462. 62040 A$ = ""
  463. 62050 PRINT ">"; 
  464. 62060 FOR N9 = 1 TO MAX
  465. 62070 K$(N9) = ""
  466. 62080 PRINT "_";
  467. 62090 NEXT N9
  468. 62100 PRINT "<";
  469. 62110 T2 = MAX + 1
  470. 62120 FOR T4 = 1 TO T2
  471. 62130 PRINT CHR$(CH);
  472. 62140 NEXT T4
  473. 62150 KT = 0
  474. 62160 KTMAX = 1
  475. 62170 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  476. 62180 KT = KT + 1
  477. 62190 PRINT TAB(KT+1)"";
  478. 62200 K$ = INKEY$
  479. 62210 IF K$ = "" GOTO 62200
  480. 62220 C = ASC(K$)
  481. 62230 IF C = 0 THEN GOSUB 61900
  482. 62240 IF C = 13 GOTO 62350
  483. 62250 IF C = 17 OR C = 8 GOTO 62920
  484. 62260 IF C = 19 GOTO 62450
  485. 62270 IF C = 4  GOTO 62500
  486. 62280 IF C = 6 GOTO 62560
  487. 62290 IF C = 1 GOTO 62730
  488. 62300 IF KT > MAX GOTO 62190
  489. 62310 K$(KT) = K$
  490. 62320 PRINT K$(KT);
  491. 62330 IF KT > KTMAX THEN KTMAX = KT
  492. 62340 GOTO 62180
  493. 62350 REM **********  RETURN  **********
  494. 62360 FOR T9 = 1 TO MAX
  495. 62370 A$ = A$ + K$(T9)
  496. 62420 NEXT T9
  497. 62430 PRINT "" 
  498. 62440 RETURN  
  499. 62450 REM ********* MOVE CURSE BACK ********
  500. 62460 IF KT = 1 GOTO 62190
  501. 62470 KT = KT - 1
  502. 62480 PRINT CHR$(CH);
  503. 62490 GOTO 62190
  504. 62500 REM ********* MOVE CURSER FORWARD *********
  505. 62510 IF KT >= MAX GOTO 62190
  506. 62520 IF KT >  KTMAX  GOTO 62190
  507. 62530 PRINT K$(KT);
  508. 62540 KT = KT + 1
  509. 62550 GOTO 62190
  510. 62560 REM ********** INSERT ***********
  511. 62570 X9 = MAX
  512. 62580 WHILE X9 > KT
  513. 62590 X9 = X9 - 1
  514. 62600 K$(X9 + 1) = K$(X9)
  515. 62610 WEND 
  516. 62620 K$(KT) = " "
  517. 62630 KTMAX = KTMAX + 1
  518. 62640 IF KTMAX > MAX THEN KTMAX = MAX
  519. 62650 FOR T9 = KT TO KTMAX
  520. 62660 PRINT K$(T9);
  521. 62670 NEXT T9
  522. 62680 T6 = (KTMAX - KT) +1
  523. 62690 FOR T7 = 1 TO T6
  524. 62700 PRINT CHR$(CH);
  525. 62710 NEXT T7
  526. 62720 GOTO 62190
  527. 62730 REM ********** DELETE ***********
  528. 62740 IF KT > KTMAX GOTO 62200
  529. 62750 IF KTMAX = 1 GOTO 62190
  530. 62760 K$(MAX + 1) = ""
  531. 62770 X9 = KT 
  532. 62780 WHILE X9 <= KTMAX
  533. 62790 K$(X9) = K$(X9 + 1)
  534. 62800 X9 = X9 + 1
  535. 62810 WEND 
  536. 62820 KTMAX = KTMAX - 1
  537. 62830 FOR T9 = KT TO KTMAX
  538. 62840 PRINT K$(T9);
  539. 62850 NEXT T9
  540. 62860 PRINT "_";
  541. 62870 T7 = (KTMAX - KT) + 2
  542. 62880 FOR T6 = 1 TO T7
  543. 62890 PRINT CHR$(CH);
  544. 62900 NEXT T6
  545. 62910 GOTO 62190
  546. 62920 REM ********* BACKSPACE ********
  547. 62930 IF KT = 1 GOTO 62190
  548. 62940 K$(KT) = " "
  549. 62950 KT = KT - 1
  550. 62960 K$(KT) = " "
  551. 62970 PRINT CHR$(CH);
  552. 62980 PRINT "_";
  553. 62990 PRINT CHR$(CH);
  554. 63000 GOTO 62190
  555.  " "
  556. 62950 KT = KT - 1
  557. 62960 K$(KT) = " "
  558. 62970 PRINT CHR$(CH);
  559. 62980 PRINT "_";
  560. 62990 PRINT CHR$(CH);
  561. 63000